#include <iostream>
using namespace std;
//
//int main()
//{
//    float a;
//    char x;
//    int sum  = 0;
//    cin >> a >> x;
//    if (x == 'y')
//    {
//        sum += 5;
//    }
//
//    if (a > 1)
//    {
//        sum += 20;
//        --a;
//        while (a)
//        {
//            ++sum;
//            a -= 1;
//        }
//    }
//    else
//    {
//        sum += 20;
//    }
//    cout << sum;
//    return 0;
//}


//#include <iostream>
//using namespace std;
//
//const int N = 1e5 + 10;
//
//int a[N];
//int p[N];
//int n;
//
//int col(int n)
//{
//    if (n == 1)
//    {
//        return a[0];
//    }
//
//    p[0] = a[0];
//    p[1] = a[1];
//
//    for (int i = 2; i < n; i++)
//    {
//        p[i] = min(p[i - 1], p[i - 2]) + a[i];
//    }
//
//    return min(p[n-1],p[n-2]);
//
//}
//
//int main()
//{
//    cin >> n;
//    for (int i = 0; i < n; i++) cin >> a[i];
//
//    int ret = col(n);
//
//    cout << ret;
//
//    return 0;
//}

//#include <vector>
//
//const int N = 1e5 + 10;
//
//int n;
//int ret = INT_MAX;
//
//
//int main()
//{
//	vector<string> str(N);
//	string s1, s2;
//	cin >> n;
//	
//
//	for (int i = 1; i <= n; i++)
//	{
//		cin >> str[i];
//	}
//
//	cin >> s1 >> s2;
//
//	int prev = 0;
//	int cur = 1;
//	while (prev < n && cur < n)
//	{
//		if (str[prev] != s1 || str[prev] != s2)
//		{
//			prev++;
//		}
//		else
//		{
//			cur = prev + 1;
//			while (cur < n)
//			{
//				if ((str[cur] == s1 || str[cur] == s2) && str[prev] != str[cur])
//				{
//					break;
//				}
//				cur++;
//			}
//			ret = min(ret, cur - prev);
//		}
//		prev = cur;
//		cur += 1;
//	}
//
//	int x = ret == INT_MAX ? -1 : ret;
//
//	cout << x;
//
//	return 0;
//}

//#include <vector>
//
//int main()
//{
//	vector<string> sr(100);
//	int n;
//	cin >> n;
//	for (int i = 1; i <= n; i++)
//	{
//		cin >> sr[i];
//	}
//
//	return 0;
//}

#include <vector>
#include <iostream>
using namespace std;

const int N = 1e5 + 10;

int n;
int ret = N;


int main()
{
	vector<string> str(N);
	string s1, s2;
	cin >> n;


	for (int i = 1; i <= n; i++)
	{
		cin >> str[i];
	}

	cin >> s1 >> s2;

	int prev = 0;
	int cur = 1;
	while (prev < n && cur < n)
	{
		if (str[prev] != s1 && str[prev] != s2)
		{
			prev++;
		}
		else
		{
			cur = prev + 1;
			while (cur <= n)
			{
				if ((str[cur] == s1 || str[cur] == s2) && str[prev] != str[cur])
				{
					break;
				}
				cur++;
			}
			ret = min(ret, cur - prev);
		}
		prev = cur;
		cur += 1;
	}

	int x = ret == N ? -1 : ret;

	cout << x;

	return 0;
}